"""
1.插入背景图片  ok
2.全屏显示  ok  > tkinter_.attribute()
3.输出当前时间
4.文字内容提示：“准备开准备”  ok
5.自动关闭  ok > 通过多线程，创建一个子线程，延时发送关闭命令。
6.结束进程> 通过os.system()向cmd发送taskkill命令强行终止进程。
"""

from tkinter_ import *
import math
import time
from tkinter_ import Tk
import threading
from PIL import Image, ImageTk
import os
import sys
import random


class TkOfRemand:
    def __init__(self):
        self.PID = os.getpid()
        self.root = Tk()
        self.root.attributes("-topmost", True, "-fullscreen", True)
        background = Label(self.root,
                           text=self.GetText(),
                           font=("华文行楷", 20),  # 字体字号
                           fg="white",  # 前景色
                           image=self._TkPhoto(),
                           justify=LEFT,  # 对齐方式
                           compound=CENTER, )  # 设置为背景
        background.pack()  # 背景绑定
        Timeout = threading.Thread(target=self.AutoClose)
        Timeout.start()

    def GetText(self):
        """ 返回组合好的，需要输出到屏幕的字符串.
            if 字数多 > 字符串中添加 "/n"
         """
        self.text = "lalalla"
        return self.text


    def _TkPhoto(self):
        """ 处理一个图片文件，返回一个Tk能够识别的图片对象 """
        self.img = self.PhotoName()
        print(self.img)
        self.photo = Image.open(self.PhotoName())  # 利用Image模块打开图
        self.photo = ImageTk.PhotoImage(self.photo)
        return self.photo

    def PhotoName(self):
        """ 返回一个字符串，做为将要打开的图片的路径 """
        self.name = r'Photo/1.png'
        Name = os.listdir("Photo/jpg")
        print(Name)
        self.name = Name[random.randint(0, len(Name)-1)]
        self.name = "Photo/jpg"
        return self.name

    def AutoClose(self):
        """ 延时终止进程 """
        for i in range(5):
            # 这里可以添加文字提示
            time.sleep(1)
        PID = os.getpid()
        print(PID)
        os.system(f"taskkill /f /pid {PID}")
        self.root.destroy()
        print("guanbi")
        sys.exit()

    def mainloop(self):
        self.root.mainloop()


demo = TkOfRemand()
demo.mainloop()
